package com.jason.commons.date;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 时间处理的工具
 * Created by fuyongde on 16/4/10.
 */
public class DateFormater {
    private static Logger logger = LoggerFactory.getLogger(DateFormater.class);

    private SimpleDateFormat simpleDateFormat;

    public enum Format{

        YYYY_MM_DD_HH_MM_SS("yyyy-MM-dd HH:mm:ss"),
        YYYY_MM_DD_HH_MM_SS2("yyyy/MM/dd HH:mm:ss"),
        YYYY_MM_DD_HH_MM_SS3("yyyy年MM月dd日 HH:mm:ss"),

        YYYYMMDDHHMMSS("yyyyMMddHHmmss"),

        YYYY_MM_DD_HH_MM("yyyy-MM-dd HH:mm"),
        YYYY_MM_DD_HH_MM2("yyyy/MM/dd HH:mm"),

        YYYY_MM_DD("yyyy-MM-dd"),
        YYYY_MM_DD2("yyyy/MM/dd");

        String pattern;

        Format(String pattern) {
            this.pattern = pattern;
        }

    }

    public DateFormater() {
        this.simpleDateFormat = new SimpleDateFormat(Format.YYYY_MM_DD_HH_MM_SS.pattern);
    }

    /**
     * 采用枚举类型主要是为了规范化输入
     * @param format
     */
    public DateFormater(DateFormater.Format format) {
        this.simpleDateFormat = new SimpleDateFormat(format.pattern);
    }

    /**
     * 将日期格式化为制定的格式
     * @param date 日期
     * @return
     */
    public String format(Date date) {
        return this.simpleDateFormat.format(date);
    }

}
